package com.example.api.service;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.RequestParam;

import com.example.api.entity.DatabaseInfo;
import com.example.api.entity.TableInfo;
import com.example.api.entity.User;
import com.example.myutil.JDBCTools;

public interface DatabaseInfoService {

	/**
	 * 根据数据库连接信息获取数据库名列表
	 * @param databaseConnectionId
	 * @return
	 */
	public List<Map<String, String>> getDatabaseInfoByConnectionId(Integer databaseConnectionId);
	
	public List<DatabaseInfo>getDatabaseInfoByuserId(Integer userId);
	
	/**
	 * 获取数据表名称列表
	 * @param databaseInfo
	 * @param connectionId
	 * @return
	 */
	public List<Map<String, Object>> getTableInfoBydatabaseInfo(String databaseName,Integer connectionId);
	
	/**
	 * 获取数据库视图名称列表
	 * @param databaseInfo
	 * @param connectionId
	 * @return
	 */
	public List<Map<String, Object>> getViewListBydatabaseInfo(String databaseName,Integer connectionId);
	
	/**
	 * 获取数据库配置信息
	 * @param userId
	 * @return
	 */
	public List<DatabaseInfo> getDatabaseConfigInfoByuserId(Integer userId);
	
	/**
	 * 获取数据表的字段信息
	 * @param databaseInfo
	 * @param connectionId
	 * @return
	 */
	Map<String, Object> getTableFieldList(String databaseName,Integer connectionId,String tableName);
	
	/**
	 * 获取数据库视图的字段信息
	 * @param databaseInfo
	 * @param connectionId
	 * @return
	 */
	Map<String, Object> getViewFieldList(String databaseName,Integer connectionId,String tableName);
	
	/**
	 * 添加数据库配置信息
	 * @param databaseInfo
	 * @return
	 */
	public int addDatabaseConfigInfo(DatabaseInfo databaseInfo)throws Exception;
	
	public int deleteDatabaseConfigInfo(Integer connectionId)throws Exception;
	
	/**
	 * 根据userId获取用户信息
	 * @param userId
	 * @return
	 */
	public User getuserInfoById(Integer userId);
	
	/**
	 * 判断用户的登录信息
	 * @param userName
	 * @param password
	 * @return
	 */
	public User getUserInfoByLoginInfo(String userName,String password);
}
